import { fileURLToPath, URL } from 'node:url';

import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
// import vueDevTools from 'vite-plugin-vue-devtools'

// 引入自动引入hook插件
import AutoImport from 'unplugin-auto-import/vite';

// 引入自定义组件的插件
import Components from 'unplugin-vue-components/vite';

// 引入自动生成路由插件
import Pages from 'vite-plugin-pages';


// https://vite.dev/config/
export default defineConfig({
    plugins: [
        vue(),
        AutoImport({
            // 自动导入相关API
            imports: [
                'vue',
                'vue-router',
                'pinia'
            ],
            // 生成全局自动引入配置文件
            dts: "./src/auto-imports.d.ts",
        }),
        Components({
            // 指定组件位置，默认是src/components
            dirs: ['src/components'],
            extensions: ['vue'],
            // 配置文件生成位置
            dts: 'src/components.d.ts'
        }),
        Pages({
            dirs: 'src/views', // 需要生成路由的组件目录
            exclude: ['**/components/*.vue'], // 排除在外的目录，即所有 components 目录下的 .vue 文件都不会生成路由
        }),
        // vueDevTools(),
    ],
    resolve: {
        alias: {
            '@': fileURLToPath(new URL('./src', import.meta.url)),
        },
    },

    server: {
        // 开发服务器的配置
        // 反向代理
        proxy: {
            '/shop': {
                target: 'http://www.fast2.com/shop', // 反向代理的目标地址
                // target: 'http://www.galen.asia/shop', //线上反向代理的目标地址
                changeOrigin: true, // 允许跨域
                // 替换掉shop前缀 防止多个shop地址
                rewrite: (path) => path.replace(/^\/shop/, ''),
            },
            '/pay/index/status': {
                target: 'http://www.fast2.com/pay', // 反向代理的目标地址
                // target: 'http://www.galen.asia/shop', //线上反向代理的目标地址
                changeOrigin: true, // 允许跨域
                // 替换掉shop前缀 防止多个shop地址
                rewrite: (path) => path.replace(/^\/pay/, ''),
            },
        }
    },
});
